package com.chenwut.studentManagerSystem.Tool;

import java.util.Random;


public class  verificationCode {

    public static void main(String[] args) {
       /*
        生成验证码
        内容：可以是小写字母，也可以是大写字母，还可以是数字
        规则：
        长度为5
        内容中是四位字母，1位数字。
        其中数字只有1位，但是可以出现在任意的位置。*/
        String code = getCode();
        System.out.println(code);
    }


    public static String getCode(){
        String str = "";
        //1.可以把所有的大写字母，小写字母都放到一个数组当中
        char[] arr = new char[52];
        //a-z  A-Z
        for (int i = 0; i < arr.length; i++) {
            if (i < 26) {
                arr[i] = (char) ('a' + i);
            } else {
                arr[i] = (char) ('A' + i - 26);
            }
        }
        //System.out.println(arr);
        //2.从数组中随机获取4次
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int j = r.nextInt(52);
            str += arr[j];
        }
        //3.生成一个0~9之间的随机数拼接到最后
        str += r.nextInt(10);
        //ACFG7
        //思考，我们把7放到前面，修改了字符串的内容
        //把生成的验证码先变成一个字符数组
        //再让最后一个元素跟前面的随机位置的元素进行交换
        //交换完毕之后再变成字符串就可以了。
        //2.变成字符数组
        char[] chn = str.toCharArray();
        char temp;
        int j;
        for (int i = 0; i < chn.length; i++) {
            j = r.nextInt(chn.length);
            temp = chn[i];
            chn[i] = chn[j];
            chn[j] = temp;
        }
        //4.把字符数组再变回字符串
        String result = new String(chn);
        /*System.out.println("验证码为：" + result);
        System.out.println(System.getProperty("file.encoding"));*/
        return result;

    }
}
